package com.framework.loippi.plugin.alipay;

/**
 * @version V1.0
 * @Description: 支付宝扫码支付所需参数
 * @author: wangcj
 * @date: 2017年6月24日 下午5:11:15
 */
public class PayParameter {

    // (必填) 商户网站订单系统中唯一订单号，64个字符以内，只能包含字母、数字、下划线，
    // 需保证商户系统端不能重复，建议通过数据库sequence生成，
    private String outTradeNo;

    // (必填) 订单标题，粗略描述用户的支付目的。如“喜士多（浦东店）消费”
    private String subject;

    // (必填) 订单总金额，单位为元，不能超过1亿元
    // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
    private String totalAmount;

    // (可选) 订单不可打折金额，可以配合商家平台配置折扣活动，如果酒水不参与打折，则将对应金额填写至此字段
    // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
    private String undiscountableAmount;

    // 卖家支付宝账号ID，用于支持一个签约账号下支持打款到不同的收款账号，(打款到sellerId对应的支付宝账号)
    // 如果该字段为空，则默认为与支付宝签约的商户的PID，也就是appid对应的PID
    private String sellerId;

    // 订单描述，可以对交易或商品进行一个详细地描述，比如填写"购买商品2件共15.00元"
    private String body;

    // 商户操作员编号，添加此参数可以为商户操作员做销售统计
    private String operatorId;

    // (必填) 商户门店编号，通过门店号和商家后台可以配置精准到门店的折扣信息，详询支付宝技术支持
    private String storeId;


    // 支付超时，定义为120分钟
    private String timeoutExpress = "120m";


    public String getOutTradeNo() {
        return outTradeNo;
    }


    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }


    public String getSubject() {
        return subject;
    }


    public void setSubject(String subject) {
        this.subject = subject;
    }


    public String getTotalAmount() {
        return totalAmount;
    }


    public void setTotalAmount(String totalAmount) {
        this.totalAmount = totalAmount;
    }


    public String getUndiscountableAmount() {
        return undiscountableAmount;
    }


    public void setUndiscountableAmount(String undiscountableAmount) {
        this.undiscountableAmount = undiscountableAmount;
    }


    public String getSellerId() {
        return sellerId;
    }


    public void setSellerId(String sellerId) {
        this.sellerId = sellerId;
    }


    public String getBody() {
        return body;
    }


    public void setBody(String body) {
        this.body = body;
    }


    public String getOperatorId() {
        return operatorId;
    }


    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }


    public String getStoreId() {
        return storeId;
    }


    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }


    public String getTimeoutExpress() {
        return timeoutExpress;
    }


    public void setTimeoutExpress(String timeoutExpress) {
        this.timeoutExpress = timeoutExpress;
    }


    public static PayParameter build(String orderBody, String orderSn, java.math.BigDecimal bigDecimal) {
        PayParameter payParameter = new PayParameter();
        payParameter.setBody(orderBody);
        payParameter.setOperatorId("test_operator_id");//商户操作员编号
        payParameter.setOutTradeNo(orderSn);
        payParameter.setSellerId("");
        payParameter.setStoreId("test_store_id");
        payParameter.setSubject("全车科技");
        payParameter.setTimeoutExpress("120m");//定义超时12分钟
        payParameter.setTotalAmount(bigDecimal.toString());
        payParameter.setUndiscountableAmount("0");//打折

        return payParameter;
    }


}
